package com.xhsj.user.pms.patent.domain;

import com.baomidou.mybatisplus.annotation.Version;
import com.google.common.collect.Lists;
import com.xhsj.user.hr.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 专利模块海外申请表
 * </p>
 *
 * @author suxiaolin
 * @since 2021-01-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tb_pam_overseas_apply")
public class TbPamOverseasApply extends BaseEntity<TbPamOverseasApply> {

    private static final long serialVersionUID = 1L;

    /**
     * 海外案件申请名称
     */
    @TableField("name")
    private String name;

    /**
     * 交底书id
     */
    @TableField("disclosure_id")
    private String disclosureId;

    /**
     * 国内交底书案卷号
     */
    @TableField("archives_num")
    private String archivesNum;

    /**
     * tb_pam_overseas_regional_details主键id关联
     */
    @TableField("regional_details_id")
    private Long regionalDetailsId;

    /**
     * 节点id
     */
    @TableField("node_id")
    private Long nodeId;

    /**
     * 节点名称
     */
    @TableField("node_name")
    private String nodeName;

    /**
     * 优先权号
     */
    @TableField("priority_num")
    private String priorityNum;

    /**
     * 优先权日
     */
    @TableField("priority_date")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date priorityDate;

    /**
     * 优先权届满日
     */
    @TableField("priority_apply_expiration")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date priorityApplyExpiration;

    /**
     * 优先权申请号
     */
    @TableField("application_num")
    private String applicationNum;

    /**
     * 海外申请号
     */
    @TableField("overseas_apply_num")
    private String overseasApplyNum;

    /**
     * 海外事务所名称
     */
    @TableField("overseas_office_name")
    private String overseasOfficeName;

    /**
     * 外所案号
     */
    @TableField("overseas_office_num")
    private String overseasOfficeNum;

    /**
     * PCT申请号
     */
    @TableField("pct_apply_num")
    private String pctApplyNum;

    /**
     * PCT届满日
     */
    @TableField("pct_apply_expiration")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date pctApplyExpiration;

    /**
     * 发明名称
     */
    @TableField("in_vent_name")
    private String inVentName;

    /**
     * 相关案
     */
    @TableField("related_num")
    private String relatedNum;

    /**
     * PCT申请日
     */
    @TableField("pct_apply_date")
    private String pctApplyDate;

    /**
     * 国际公开号
     */
    @TableField("international_public_num")
    private String internationalPublicNum;

    /**
     * 国际公开日
     */
    @TableField("international_public_date")
    private String internationalPublicDate;
    /**
     * 海外申请类型表id
     */
    @TableField("apply_type_id")
    private Integer applyTypeId;

    /**
     * IPR
     */
    @TableField("ipr")
    private Long ipr;

    @TableField(exist = false)
    private String iprName;

    /**
     * 权利要求项
     */
    @TableField("claims")
    private String claims;

    /**
     * 国内案件树信息展示值
     */
    @TableField("domestic_tree_value")
    private String domesticTreeValue;

    /**
     * 专利表id
     */
    @TableField("patent_id")
    private String patentId;


    @TableField(exist = false)
    private List<TbPamOverseasApplyFile> applyFileList = Lists.newArrayList();

    @TableField(exist = false)
    private String opinionText;

    /**
     * 国外案件案卷号
     */
    @TableField("overseas_archives_num")
    private String overseasArchivesNum;

    @TableField(exist = false)
    private Long processTaskId;


}
